package 校赛.真题._2022校赛;
import java.util.*;
/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 题目描述
 * 小A在高中时，学校规定进出校门必须要刷校园卡，否则禁止进入。
 * 某一天，小A和同学们一共n个人去学校附近玩耍，但回学校时他们发现只有m个人带了校园卡，
 * 于是他们想到了这样一个策略：先让m个人带校园卡进入学校，再派一个人带着所有m张校园卡出来，
 * 重复上述过程，直到所有人进入学校。 （此举不符合学校规定，请勿模仿）
 * 假设从外面进入学校和从校内出来到校外都需要花费一个单位时间，求所有人都进入学校最少需要花费几个单位时间。


 * 输入格式
 * 第一行包含一个T ，表示测试组数。
 * 以下 T行每行包含两个整数n,m，含义如题目所示。

 * 输出格式
 * 输出T行，每行一个整数，代表最少用时。特别的，若无法让所有人进入学校，输出−1。

 * 数据范围
 * 1 ≤ T≤ 100000,
 * 1 ≤ nm≤≤ 1000000000。

 * 样例
 * 输入数据
3
6 3
10 10
10 1
 * 输出数据
 * 5
 * 1
 * -1
 * 思路：
 * 1.模拟会超时
 * 2.特别情况判断：卡足够一次通过；只有一张卡，人不止一个
 * 3.除最后一次，每次进去都有一个人回来，相当于每次来回时间进m-1个人
 * 4.假设最后进m个人，剩余人数 对 m - 1向上取整
 * @since 2023 - 03 - 27 - 19:50
 */
public class C_进出校园 {
}
class Main_C{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        int n, m, res;
        while(t-- > 0){
            n = sc.nextInt();
            m = sc.nextInt();
            if(m >= n){
                System.out.println(1);
            }else if(m == 1){
                System.out.println(-1);
            }else{
                res = 1;
                //最后进m个
                n -= m;
                //相当于每次进 m - 1个人
                m--;
                //向上取整
                res += (n + m - 1) / m * 2;
                System.out.println(res);
            }
        }
    }
}